package main

import "fmt"
import "go.init/util"
import "go.init/app"

// ==========初始化==========
// 1、每个源文件都可以包含一个init函数, 该函数会在main函数执行前
// 2、如果一个文件同时包含全局变量定义、init函数和main函数, 则执行的流程是全局变量定义->init函数->main函数

var age = test()

// 为了看到全局变量是先被初始化的
func test() int {
	fmt.Println("main test()")
	return 90
}

func init() {
	fmt.Println("main init()")
}

func main() {
	fmt.Println("main()", age)
	fmt.Println(app.AppName, app.AppVersion)
	fmt.Println(util.Age, util.Name)

	// 打印顺序
	// utils init()
	// app init()
	// main test()
	// main init()
	// main() 90
	// golang 1.0
	// 20 Max

}
